From 36e3401c278cd5e774e6afc7c74079f959131836 Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Thu, 20 Oct 2005 12:10:14 +0100 Subject: [PATCH] New function direct_kernel_remap_pfn_range(). Like direct_remap_pfn_range but doesn't take a vma and implicitly maps into init_mm. Signed-off-by: Keir Fraser --- linux-2.6-xen-sparse/arch/xen/i386/mm/ioremap.c | 11 ++++++++++- .../include/asm-xen/asm-i386/pgtable.h | 5 +++++ .../include/asm-xen/asm-x86_64/pgtable.h | 6 ++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/linux-2.6-xen-sparse/arch/xen/i386/mm/ioremap.c b/linux-2.6-xen-sparse/arch/xen/i386/mm/ioremap.c index 7d989863df..08aded5dd9 100644 --- a/linux-2.6-xen-sparse/arch/xen/i386/mm/ioremap.c +++ b/linux-2.6-xen-sparse/arch/xen/i386/mm/ioremap.c @@ -123,9 +123,18 @@ int direct_remap_pfn_range(struct vm_area_struct *vma, return __direct_remap_pfn_range( vma->vm_mm, address, mfn, size, prot, domid); } - EXPORT_SYMBOL(direct_remap_pfn_range); +int direct_kernel_remap_pfn_range(unsigned long address, + unsigned long mfn, + unsigned long size, + pgprot_t prot, + domid_t domid) +{ + return __direct_remap_pfn_range( + &init_mm, address, mfn, size, prot, domid); +} +EXPORT_SYMBOL(direct_kernel_remap_pfn_range); /* FIXME: This is horribly broken on PAE */ static int lookup_pte_fn( diff --git a/linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable.h b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable.h index 59cc6f60e0..5d55df00a0 100644 --- a/linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable.h +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable.h @@ -455,6 +455,11 @@ int direct_remap_pfn_range(struct vm_area_struct *vma, unsigned long size, pgprot_t prot, domid_t domid); +int direct_kernel_remap_pfn_range(unsigned long address, + unsigned long mfn, + unsigned long size, + pgprot_t prot, + domid_t domid); int create_lookup_pte_addr(struct mm_struct *mm, unsigned long address, unsigned long *ptep); diff --git a/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h b/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h index 409c40483c..fe4467a7a1 100644 --- a/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h @@ -533,6 +533,12 @@ int direct_remap_pfn_range(struct vm_area_struct *vma, pgprot_t prot, domid_t domid); +int direct_kernel_remap_pfn_range(unsigned long address, + unsigned long mfn, + unsigned long size, + pgprot_t prot, + domid_t domid); + int create_lookup_pte_addr(struct mm_struct *mm, unsigned long address, unsigned long *ptep); -- 2.30.2